<?php 
// 不应该强制接口的实现，依赖于它不使用的方法。 比如有空方法

class Contact extends Eloquent
{
	public function getNameAttribute()
	{
		return $this->attributes['name'];
	}

	public function getEmailAttribute()
	{
		return $this->attributes['email'];
	}
}

class PasswordReminder {
	// 这里依赖了Contact类，也就是Eloquent类，这是多余的。
	public function remind(Contact $contact, $view) {
		// send password reminder email
	}
}

interface RemindableInterface {
	public function getReminderEmail($value=''){}
}

class Contact2 extends Eloquent implements RemindableInterface {
	public function getReminderEmail() 
	{
		return $this->email;
	}
}

class PasswordReminder {
	// 改为依赖接口，移除对Eloquent的依赖
	public function remind(RemindableInterface $remindable, $view)
	{
		// send password reminder email
	}
}